The present invention relates to data storage, and more particularly, to providing improved product code decoding using combination error and erasure decoding.
Storage media and transmission media, such as magnetic tape, optical storage, or optical fiber transmission, use product codes to encode data, which then must be decoded to read the data from the medium. Product codes may also be used in storage-class and flash memories. The product code is a critical component of a two-level error correction architecture. Error correction in tape drives is typically based on product codes using a first-level C1 code and a second-level C2 code, a process which is well known in the art. Product codewords may be represented as two-dimensional arrays where rows of the array comprise codewords from a row code (C1 code) and columns of the array consist of codewords from a column code (C2 code).
Each data set is encoded using interleaved sets of codewords that are organized into an ECC-encoded matrix of size M bytes×N bytes (M×N) and then written to tape as shown in FIG. 1, according to the prior art. There are two levels of encoding within this matrix 150. The first level of encoding utilizes the matrix rows 102. Each row 102 of the matrix contains C1-ECC row parity 106, which adds p-bytes of C1-ECC to the n-bytes of user data (e.g., N=n+p bytes). The second level of encoding, C2-ECC column parity 108, adds q-bytes of C2-ECC to each matrix column 104. For example, if q=12, then adding 12 bytes of C2-ECC would add 12 rows to the matrix 150 (e.g., M=m+q bytes).
In tape storage, the decoder for the product code is designed to mitigate very long error events, such as drop-outs and sync slips. In some tape drives, the C1 decoder, which is also used during read-while-write, performs error decoding, and the C2 decoder performs erasure decoding. The drawback of this particular decoding strategy is that it does not perform well in the presence of short error events. Furthermore, this strategy does not allow for improved error rate performance using iterative decoding.
In other communication channels, such as optical fiber transmission channels, error decoding is used in the presence of very short independent bit errors. The drawback of this decoding strategy is that it works very well as long as long error events are negligible.
However, many of the channels and storage media, such as tape storage channels, exhibit both short and long error events. Therefore, there is a need for an improved decoding schedule/strategy, that delivers improved error rate performance in the presence of both long and short error events.